var limitUp = limitUp || {};
var myChartcircle;

limitUp = (function(){
	limitUp.initRose = function(){

		var obj = document.getElementById('rose');
		myChartcircle = echarts.init(obj);
		var st = $('#rose').height()*0.16;
		var sd = $('#rose').height()*0.38;
		$('.rose_background').css(
			{
				'height' : st*2 + 'px',
				'width' : st*2 + 'px',
				'margin-top' : -st + 'px',
				'margin-left' : -st + 'px',
			}
		);

		$(obj).attr('_echarts_instance_') ? $(obj).attr('_echarts_instance_','') : ''

		var dt = [];
		var arr = [
		[geneGlobal.urlData.geneData.turnOverRate.score,10],  //换手基因
		[geneGlobal.urlData.geneData.breakthrough.score,6],
		[geneGlobal.urlData.geneData.trend.score,6],
		[geneGlobal.urlData.geneData.popularity.score,6],
		[geneGlobal.urlData.geneData.shortActive.score,40],
		[geneGlobal.urlData.geneData.bigMoney.score,6],
		[geneGlobal.urlData.geneData.shrinkageUp.score,6],
		[geneGlobal.urlData.geneData.timeSharing.score,20]
		];
		var color = ['#febf62','#4db84d','#e96a8f','#8a89e2','#f06f6f','#ffa65f','#4d4d4d','#7eb2f3'];
		function putData(x,y,color){//分子 分母 颜色
            var needAreaCount = y;

            for(var i=0;i<needAreaCount;i++){
                dt.push({
                    value:x/needAreaCount,
                    itemStyle:{
                        normal:{
                            color:color,
                            borderColor:color
                        },
                        emphasis:{
                            color:color,
                            borderColor:color
                        }
                    },
                    label:{
                        normal:{
                            show:false
                        },
                        emphasis:{
                            show:false
                        }
                    }
                });
            }
        }
		var disArr = [];
		var max = 0;
        function put(n){
            var res = function(){
                putData(arr[n][0],arr[n][1],color[n]);
                disArr.push(arr[n][0]/arr[n][1]);
            }
            return res;
        }

        for(var i=0;i<arr.length;i++){
            put(i)();
        }
        max = Math.max(disArr[0],disArr[1],disArr[2],disArr[3],disArr[4],disArr[5],disArr[6],disArr[7]);
        $.each(dt,function(key,item){
        	if(item.value == 0){
        		item.value = 0.025;
        	}
        });
        if(max == 0){
        	max = 0.025;
        }
        sd = st*(1-max)+sd*max;
		var option = {
			radiusAxis:{
				show:false
			},
			legendHoverLink:false,
			series:[
				{
					type:'pie',
					radius:[st,sd],
					center: ['50%', '50%'],
					roseType:'area',
					hoverAnimation:false,
					avoidLabelOverlap:false,
                    clickable:false,
                    animation:false,
					data:dt,
					itemStyle:{
						normal:{
							color:function(params){
								var colorList = ['#4db84d','#febf62','#e96a8f','#8a89e2','#f06f6f','#ffa65f','#4d4d4d','#7eb2f3'];
								return colorList[params.dataIndex];
							}
						}
					},
					label:{
						normal:{
							show:false
						}
					},
					labelLine:{
						normal:{
							show:false
						}
					}
				}
			],
			animationDuration:300,
		}
		myChartcircle.setOption(option);
		},
		limitUp.initGraph = function(dataX,dataY,dataZ){

			var dataTotal = [];
			var length = dataX.length;
			for(var i=0;i<length;i++){
				dataTotal.push(dataX[i]+dataY[i]);
			}

			if(length < 12){
				for(var i=length;i<12;i++){
					dataX[i] = '';
					dataY[i] = '';
					dataTotal[i] = '';
					dataZ[i] = '';
				}
			}
			var obj = document.getElementById('graph');
			$(obj).attr('_echarts_instance_','');
			var dpr = $('html').data('dpr');
			var xSize;
			var setpx = 8;
			switch(dpr){
				case 1:
					setpx = setpx;
					xSize = setpx*0.1;
					break;
				case 2:
					setpx = setpx*2.5;
					xSize = setpx;
					break;
				case 3:
					setpx = setpx*5;
					xSize = setpx*0.7;
					break;		
			}
			myChartcircle = echarts.init(obj);
		
			var option = {
				grid:{},
				xAxis:[],
				yAxis:[{
					type:'value',
					show:false,
					axisTick:{
						show:false
					},
					axisLine:{
						show:false,
						lineStyle:{
							color:'#fff'
						}
					},
					splitLine:{
						show:false
					}
				}],
				series:[
					{
						type:'bar',
						data:dataTotal,
						barWidth:'40%',
						xAxisIndex:1,
						barGap:'0%',
						barMinHeight:1,
						legendHoverLink:false,
						label:{
							normal:{
								show:true,
								position:'top',
								fontSize:setpx,
								fontWeight:'lighter',
								formatter:function(data){
									return ['{a|'+dataX[data.dataIndex]+'}{b|/'+dataY[data.dataIndex]+'}'];
								},
								rich:{
									a:{
										color:'#f06f6f',
										fontSize:setpx
									},
									b:{
										color:'#f9cbcb',
										fontSize:setpx
									}
								}
							}
						},
						labelLine:{
							normal:{
								show:false
							}
						},
						itemStyle:{
							normal:{
								show:true,
								color:'#f9cbcb'
							}
						}
					},
					{
						type:'bar',
						data:dataX,
						barWidth:'40%',
						barGap:'0%',
						barMinHeight:1,
						label:{
							normal:{
								show:false
							}
						},
						labelLine:{
							normal:{
								show:false
							}
						},
						itemStyle:{
							normal:{
								show:true,
								color:'#f06f6f'
							}
						}
					}
				],
				animationDuration:300,
			}


			if(length <12){
				$('.graph_date').hide();
				option.xAxis = [{
					type:'category',
					data:dataZ,
					show:true,
					offset:setpx/5,
					axisTick:{
						show:false
					},
					axisLine:{
						show:true,
						lineStyle:{
							color:'#f3f3f3'
						}
					},
					splitLine:{
						show:false
					},
					axisLabel:{
						interval:0,
						rotate:-45,
						fontSize:xSize,
						textStyle:{
							fontSize:xSize,
							color:'#999',
						},
					}
				},
				{
					type:'category',
					data:dataZ,
					show:false,
					position:'bottom',
					axisTick:{
						show:false
					},
					axisLine:{
						show:false,
						lineStyle:{
							color:'#f3f3f3'
						}
					},
					splitLine:{
						show:false
					},
					axisPointer:{
						type:'line',
						lineStyle:{
							color:'#323232'
						},
						
					},
					axisLabel:{
						interval:0,
						rotate:45,
						fontSize:xSize,
						textStyle:{
							fontSize:xSize,
							color:'#999',
						}
					}
				}];
				option.grid = {
					left:'1%',
					right:'1%',
					top:'8%',
					bottom:'25%'
				};
			}else{
				$('.graph_date').show();
				option.xAxis = [{
					type:'category',
					data:dataZ,
					show:true,
					offset:setpx/10,
					axisTick:{
						show:false
					},
					axisLine:{
						show:true,
						lineStyle:{
							color:'#f3f3f3'
						}
					},
					splitLine:{
						show:false
					}
				},
				{
					type:'category',
					data:dataZ,
					show:false,
					position:'bottom',
					axisTick:{
						show:false
					},
					axisLine:{
						show:false,
						lineStyle:{
							color:'#f3f3f3'
						}
					},
					splitLine:{
						show:false
					},
					axisPointer:{
						type:'line',
						lineStyle:{
							color:'#323232'
						},
						
					}
				}];
				option.grid = {
					left:'1%',
					right:'1%',
					top:'8%',
					bottom:'2%'
				};
			}
			myChartcircle.setOption(option);
			//页面遮罩，禁止bar点击
			$('.graph_mask').on('click',function(e){
				e.preventDefault();
				return false;
			})
		},
		limitUp.initLine = function(dataY){

			var obj = document.getElementById('chartBox');
			if(getPlatform() == 'iphone'){
				if(document.body.clientWidth >= 640){
					myChartcircle = echarts.init(obj);
				}else{
					myChartcircle = echarts.init(obj,'',{renderer:'svg'});
				}
			}else{
				myChartcircle = echarts.init(obj);
			}
			var dataX = [1,2,3,4,5,6,7,8];
			var symbol = parseFloat($('.title_one').css('font-size'));
			myChartcircle.setOption({
				xAxis:{
					show:false,
					boundaryGap:false,
					axisLabel:{
						interval:0,
					},
					data:dataX,
				},
				yAxis:{
					show:false,
					type:'value',
					splitNumber:2,
					scale:true,
					boundaryGap:false, //两端不留白
					splitLine:{
							show:true,
							lineStyle:{
								color:'#f5f5f5'
							} 
						},
				},
				grid:{
					top:'12%',
					left:'12%',
					bottom:'10%',
					right:'3%',
				},
				animationDuration:270,
				series:{
					type:'line',
					color:['#4691ee'], //线条颜色
					symbolSize:symbol/4, //原点大小
					symbol:'circle', //实心原点
					data:dataY,
					lineStyle:{
						normal:{
							width:symbol/10
						}
					}
				}
			});
		},
		limitUp.initKLineChart = function(data1,data2,maxData,minData){
			
			var dpr = $('html').data('dpr');
            var opt = {
                xAxis: {
                        type: 'category',
                        axisTick: {
                            show:false
                        },
                        axisLine: {
                            show:false
                        },
                        axisLabel:{
                            show:false
                        },
                        data: new Array(241)
                    },
                yAxis: {
                        type: 'value',
                        splitLine:{show:false},
                         min:minData-0.01,
                        max:maxData+0.01,
                        axisTick: {
                            show:false
                        },
                        axisLine: {
                            show:false
                        },
                        axisLabel:{
                            show:false
                        }
                    },
                grid: {
                        show:true,
                        left: 0,
                        right: 0,
                        bottom: 1,
                        top:1,
                        width:$('.gridwrapper').width(),//100%
                        height: $('.gridwrapper').height()
                    },
                series: [
                    {
                        name:'数值',
                        type:'line',
                        symbol:'none',
                        smooth: false,
                        lineStyle:{
                            normal:{
                                color:'#4691ee',
                                width:1*dpr
                            }
                        },
                        areaStyle: {
                            normal: {
                                color:'#4691ee',
                                shadowColor: 'rgba(75,148,238,0.2)',
                                opacity:'0.2'
                            }
                        },
                        data: data1
                    },
                    {
                        name:'均价',
                        type:'line',
                        symbol:'none',
                        smooth: false,
                        lineStyle:{
                            normal:{
                                color:'#ffac35',
                                width:1*dpr
                            }
                        },
                        data: data2,
                    }    
                ]
            };

            var getH = setInterval(function(){
                var h = $('.kline-container').height();

                if(h>1){
                    clearInterval(getH);
                    getH = null;
                    var ec = echarts.init($('.kline-container')[0],null,{
                    });
                    setTimeout(function(){
                        ec.setOption(opt);
                    },1);
                }
            },10);
		}

	return {
		initRose : limitUp.initRose,
		initGraph : limitUp.initGraph,
		initLine : limitUp.initLine,
		initKLineChart : limitUp.initKLineChart
	}
})();
